package com.kaifamiao.arrays;

// 初始化数组
public class Initialization {
    public static void main(String[] args) {

        // 静态初始化: 定义数组变量时直接使用数组常量对数组进行初始化
        short[] shorts = { 188, 29, 89, 0x24, 01 };
        // 遍历数组
        for( int index = 0 ; index < shorts.length ; index++ ) {
            System.out.printf( "%d\t", shorts[index] );
        }
        System.out.println();

        System.out.println( "~ ".repeat( 10 ) );

        // 创建数组实例(并为每个元素赋予默认值)
        int[] ints = new int[5];
        // 遍历数组
        for (int i = 0; i < ints.length ; i++) {
            System.out.print( ints[i] + "\t");
        }
        System.out.println();

        // 动态初始化: 在创建数组实例后再对数组进行初始化
        ints[0] = 100;
        ints[1] = 99;
        ints[2] = 101;
        ints[3] = 33;
        ints[4] = 99;

        // 遍历数组
        for (int i = 0; i < ints.length ; i++) {
            System.out.print( ints[i] + "\t");
        }
        System.out.println();

        // 基本数据类型的数组中元素默认值:
        //    byte: 0
        //   short: 0
        //     int: 0
        //    long: 0L
        //   float: 0.0f
        //  double: 0.0
        //    char: '\u0000'
        // boolean: false

        System.out.println( "~ ".repeat( 10 ) );

        // 引用类型的数组中元素默认值都是 null
        Object[] objects = new Object[3];
        for (int i = 0; i < objects.length; i++) {
            System.out.println( objects[i] );
        }
    }
}
